home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO015A.dsk / LOG.bas < prev    next >
BASIC Source File  |  2012-02-16  |  21KB  |  269 lines

  1. 10  ONERR  GOTO 1120
  2. 20  GOTO 70
  3. 40  &  AT  PEEK(836),A: &  RETURN 
  4. 45  &  AT  PEEK(848),A: &  RETURN 
  5. 46  &  AT  PEEK(839),A: &  RETURN 
  6. 50  &  AT  PEEK(839),A: PRINT OP$;F$;",L128": &  RETURN 
  7. 60  PRINT RD$;F$;",R";Z: INPUT "";NM$: &  RETURN 
  8. 70  HOME : IF  PEEK(853) = 2  AND  PEEK(49183) <128  THEN  PRINT  CHR$(4);"PR#3"
  9. 75  POKE 34,5: POKE 35,20: POKE 813,0: &  GOSUB 2910:MD =  PEEK(793): ON MD = 4 GOTO 2570
  10. 80  POKE 813,0: POKE 824,0: &  LOAD Z$: &  GOSUB 2910:MD =  PEEK(793): ON MD = 5 GOTO 2690: POKE 810,0: POKE 807,255: POKE 805,255: POKE 803,255: &  FN 5,A: POKE 793,0: POKE 825,0: &  RECALL NM$: IF  LEN(NM$) <127  THEN NM$ = "": FOR I = 1 TO 127:NM$ = NM$ +"X": NEXT I
  11. 150  &  PEEK775,CT: &  PEEK777,MS:CT = CT +1: POKE 847,0: ONERR  GOTO 1120
  12. 170  HOME :Z$ = "WAITING FOR CALL": &   OR ,Z$: IF  PEEK(853) < >2  THEN 185
  13. 181  IF  PEEK(49183) <128  THEN 185
  14. 182  VTAB 6: PRINT : POKE 36,47: &  PRINT "-- Last Five Callers --": VTAB 7: PRINT : POKE 36,46: &  PRINT "--------------------------": FOR I = 1 TO 5: VTAB 12: PRINT : VTAB 8 +(2 *I): POKE 36,46: &  PRINT I;" ";LS$(I): NEXT 
  15. 185  VTAB 11: HTAB 10: &  PRINT "Waiting for call #";CT,,: HTAB 10: &  PRINT "Press 'T' test the BBS",,: HTAB 6: &  PRINT "Press 'O' for the Options Menu"
  16. 190  &  FN 0,A: ON A = 1 GOTO 350: &  LOAD Z$: &  SGNZ$: ON Z$ = "O" GOTO 210: ON Z$ = "T" GOTO 320: GOTO 190
  17. 210  HOME :Z$ = "** Options Menu **": &   OR ,Z$: PRINT : HTAB 12: &  PRINT Z$: VTAB 9:X = 11: HTAB X: &  PRINT "[U]ser utilities",,: HTAB X: &  PRINT "[N]ew user log ons",,: HTAB X: &  PRINT "[P]rogram text (edit)",,: HTAB X: &  PRINT "[E]xit Program",,: HTAB X: &  PRINT "[Q]uit (Rtn.)",,: HTAB 14: &  PRINT "Command? ";
  18. 260  &  GET Z$: &  SGNZ$: &  INT"UENPQ",Z$,Z: ON Z GOTO 2690,330,280,3430,80: GOTO 260
  19. 280  HOME :X = 5:Z$ = "** New User Log-ons **": &  PRINT  SPC( 9);Z$: &   OR ,Z$: &  PRINT , SPC( X);"[A]llow new user log-ons": &  PRINT , SPC( X);"[D]on't allow new user log-ons": &  PRINT , SPC( X);"[C]hange back door log-on": &  PRINT , SPC( X);"[S]tandard names only": &  PRINT , SPC( X);"[P]en names allowed": &  PRINT , SPC( X);"[Q]uit"
  20. 281  &  PRINT , SPC( 9);"Command? ";
  21. 287  &  GET Z$: &  SGNZ$: &  INT"ADCQSP",Z$,Z: IF Z = 0  THEN  &  PRINT  CHR$(7);: GOTO 287
  22. 288  ON Z GOTO 298,299,290,210,331,332
  23. 290  HOME : VTAB 9: &  PRINT "Backdoor Password = ";P1$: &  PRINT ,"Enter new password? ";: &  STR$10," ": &   STEP P1$: GOTO 310
  24. 298 PW = 1:Z$ = "New users allowed!": GOTO 300
  25. 299 PW = 0:Z$ = "New users are not allowed!"
  26. 300 Z = (40 - LEN(Z$))/2: HOME : VTAB 12: &  PRINT  SPC( Z);Z$
  27. 310  &  GOSUB 46: PRINT ST$;"VAR.LOG": GOTO 280
  28. 320  HOME :W = 0: GOTO 396
  29. 330  END 
  30. 331 AL% = 1:Z$ = "Standard names only": POKE 860,AL%: GOTO 300
  31. 332 AL% = 0:Z$ = "Pen names (alias's) are allowed!": POKE 860,AL%: GOTO 300
  32. 350  POKE 803,0:Z$ = "Ring Detected": &   OR ,Z$: &  PRINT  SPC( 14);Z$, SPC( 10);"Waiting for Carrier",,: POKE 803,255: PRINT  CHR$(7); CHR$(7): &  FN 1,A: &  FN 2,A: ON A = 0 GOTO 380: &  FN 4,A: POKE 793,0: HOME : VTAB 12: &  PRINT  SPC( 12);"No Carrier Found": FOR I = 0 TO 1000: NEXT : GOTO 80
  33. 380  &  CLEAR : IF  PEEK(772) = 1  THEN  POKE 824,10
  34. 390  HOME : PRINT : PRINT : POKE 803,0: &  PRINT  SPC( 14);"Carrier Found": POKE 803,255: FOR I = 0 TO 200: NEXT :W = 0: &  PRINT  CHR$(7); CHR$(7); CHR$(7)
  35. 396  IF  PEEK(873) = 1  THEN 440
  36. 400 Z$ = "LOGGING ON": &   OR ,Z$: &  PRINT ,A$(0);: &  GET Z$: ON Z$ =  CHR$(13) GOTO 410:W = W +1: ON W = 3 GOTO 80: &  PRINT ,A$(2),: GOTO 400
  37. 410  &  PRINT ,A$(1);: &  GET Z$:W = 0: ONERR  GOTO 1120
  38. 440  &  PRINT ,,A$(3): IF  PEEK(874) < >1  THEN 470
  39. 455  &  AT  PEEK(841),A: IF A < >0  THEN 470
  40. 458  PRINT BL$;"MSG."; PEEK(875);",A";HM: &  PRINT  = HM
  41. 470 Z$ = "GETTING PRIMARY PASSWORD": &   OR ,Z$: &  STR$7,"  ": &  PRINT ,A$(4);: POKE 825,255: &  INPUT PW$: &  SGNPW$: POKE 825,0: ON PW$ = "" GOTO 530: ON PW$ = "NEW" GOTO 590: ON PW$ = P1$ GOTO 600: ON  LEN(PW$) <7 GOTO 530:R =  VAL( MID$ (PW$,3,3)): GOTO 640
  42. 530 W = W +1: IF W = 3  THEN  &  FN 4,A: POKE 793,0: GOTO 80
  43. 540  ONERR  GOTO 1120
  44. 550  &  PRINT ,A$(6),,: GOTO 470
  45. 590  IF PW = 0  THEN  POKE 793,0: &  PRINT ,A$(12): FOR I = 1 TO 600: NEXT I: GOTO 80
  46. 600 Z$ = "LOG ON NEW USER": &   OR ,Z$: GOTO 1220
  47. 640  ONERR  GOTO 720
  48. 641 Z$ = "CHECKING PASSWORD": &   OR ,Z$: IF  MID$ (PW$,1,1) <"A"  OR  MID$ (PW$,1,1) >"Z"  THEN 530
  49. 643  IF  MID$ (PW$,2,1) <"A"  OR  MID$ (PW$,2,1) >"Z"  THEN 530
  50. 644  IF  MID$ (PW$,6,1) <"A"  OR  MID$ (PW$,6,1) >"Z"  THEN 530
  51. 645  IF  MID$ (PW$,7,1) <"A"  OR  MID$ (PW$,7,1) >"Z"  THEN 530
  52. 646  IF  MID$ (PW$,3,1) <"0"  OR  MID$ (PW$,3,1) >"9"  THEN 530
  53. 647  IF  MID$ (PW$,4,1) <"0"  OR  MID$ (PW$,4,1) >"9"  THEN 530
  54. 648  IF  MID$ (PW$,5,1) <"0"  OR  MID$ (PW$,5,1) >"9"  THEN 530
  55. 649  IF  MID$ (NM$,2,1) = " "  OR  MID$ (NM$,2,1) = "X"  THEN 680
  56. 660  IF  MID$ (NM$,56,7) = PW$  AND  MID$ (NM$,1,1) < >"D"  THEN 760
  57. 670  IF R =  VAL( MID$ (NM$,58,3))  THEN 530
  58. 680  &  GOSUB 50:Z = R: &  GOSUB 60: PRINT CL$;F$: &  STORE NM$: IF PW$ < > MID$ (NM$,56,7)  THEN 530
  59. 700  IF  MID$ (NM$,1,1) = "D"  THEN 530
  60. 710  GOTO 760
  61. 720  PRINT CL$;F$: &  ONERR  = ER,LI: ONERR  GOTO 720
  62. 740  IF ER >200  THEN  PRINT CL$: GOTO 80
  63. 750  GOTO 530
  64. 760 Z$ = "GETTING SECONDARY PASSWORD": &   OR ,Z$: &  STR$4: &  PRINT ,A$(5);: POKE 825,255: &  INPUT Z$: POKE 825,0: ON Z$ < > MID$ (NM$,50,4) GOTO 530
  65. 765 Z$ = "PRELIMINARLY LOG ON": &   OR ,Z$: POKE 824, VAL( MID$ (NM$,98,3)): &  POS0,DT,TM:DT$ =  RIGHT$("000000" + STR$(DT),6): &  POKE 775,CT: IF  MID$ (NM$,70,6) < >DT$  THEN R = 0: GOTO 810
  66. 800 R =  VAL( MID$ (NM$,79,1)): IF R = 9  THEN 820
  67. 810 R = R +1: &  MID$  STR$(R),NM$,79,1: &  STORE NM$
  68. 820 Q$ =  MID$ (NM$,1,1): &  INT"*?X",Q$,Z: ON Z GOTO 1160,1180,1100: ON  MID$ (NM$,79,1) > MID$ (NM$,63,1) GOTO 1060: IF  MID$ (NM$,90,1) = "1"  THEN  POKE 805,0: GOTO 850
  69. 840  POKE 805,255
  70. 850  IF  MID$ (NM$,91,1) = "1"  THEN  POKE 807,255: GOTO 870
  71. 860  POKE 807,0
  72. 870 :
  73. 880  &  PRINT A$(11): ON  PEEK(774) GOTO 920,900,910
  74. 900 Q$ =  MID$ (NM$,1,1): ON Q$ = "?" GOTO 920: ON Q$ = "X" GOTO 920
  75. 910  &  PRINT A$(14 + PEEK(773))
  76. 920  &  PRINT A$(18);CT: &  PEEK777,MS:Z =  VAL( MID$ (NM$,93,5)):Z = MS -Z: &  PRINT A$(19);Z;A$(20): &  PRINT ,A$(21): FOR I = 1 TO 5: IF LS$(I) = ""  THEN  &  PRINT I;" ";A$(22): GOTO 980
  77. 970  &  PRINT I;" Box #";@LS$(I)
  78. 980  NEXT : ONERR  GOTO 1045
  79. 982  IF  PEEK(868) = 0  THEN 990
  80. 983  &  AT  PEEK(841),R: IF R >0  THEN 990
  81. 984  PRINT BL$;"MSG."; PEEK(869);",A";HM: &  PRINT ,, = HM: &  PRINT ,,,: ONERR  GOTO 1045
  82. 990  IF  MID$ (NM$,92,1) >"0"  THEN  &  PRINT ,,A$(24),,: &  AT  PEEK(840),A: PRINT BL$;"TELEX."; MID$ (NM$,92,1);",A";HM: &  PRINT  = HM: &  MID$ "0",NM$,92,1: &  STORE NM$
  83. 1000  POKE 793,1: &  PRINT ,A$(23): &  POKE 798,0:Z =  VAL( MID$ (NM$,86,1)):I =  PEEK(814 +Z): IF  PEEK(772) >0  THEN I = I *3
  84. 1026  IF I >255  THEN I = 255
  85. 1027  POKE 812,I:R =  VAL( MID$ (NM$,83,3)): POKE 811,R: POKE 813,255: IF  MID$ (NM$,1,1) = "#"  THEN  POKE 812, PEEK(880)
  86. 1041  &  GOSUB 40: PRINT RN$;"BBS.0"
  87. 1045  &  ONERR  = ER,LI: ONERR  GOTO 1045
  88. 1046  IF ER >200  THEN  POKE 793,0: GOTO 80
  89. 1047  &  PRINT ,,A$(24),,: &  MID$ "0",NM$,92,1: &  STORE NM$: GOTO 1000
  90. 1060  &  PRINT A$(8): GOTO 1170
  91. 1100  &  PRINT A$(9): GOTO 1170
  92. 1120  &  ONERR  = ERR,LINE: ONERR  GOTO 1120
  93. 1130  IF ERR >200  THEN  GOTO 80
  94. 1140  ONERR  GOTO 1120
  95. 1150  &  PRINT : &  PRINT "ERROR = ";ER;" ON LINE ";LI: &  FN 4,A: POKE 793,0: GOTO 80
  96. 1160  &  PRINT A$(7)
  97. 1170  FOR I = 1 TO 3500: NEXT I: GOTO 80
  98. 1180  &  PRINT A$(10): GOTO 880
  99. 1220 Q$ = "": FOR I = 1 TO 127:Q$ = Q$ +"X": NEXT :J = 1: &  PRINT ,N$(0),,: IF  PEEK(876) < >1  THEN 1250
  100. 1245  &  AT  PEEK(841),A: IF A < >0  THEN 1250
  101. 1247  PRINT BL$;"MSG."; PEEK(877);",A";HM: &  PRINT  = HM: &  PRINT 
  102. 1250  ON J GOSUB 1930,2020,2090,2190,2300,2420:J = J +1: IF J <10  THEN 1250
  103. 1260  &  PRINT ,,"1. Name = ";NA$: IF AL% = 1  THEN  &  PRINT "2. Alias = None": GOTO 1280
  104. 1270  &  PRINT "2. Alias = ";AL$
  105. 1280  &  PRINT "3. Phone = ";PH$: &  PRINT "4. State = ";ST$: &  PRINT N$(12);: &  USRZ: ON Z GOTO 1350,1320
  106. 1320  &  PRINT N$(13);: &  STR$1,"14": &  INPUT Z$:Z =  VAL(Z$): ON Z GOSUB 2090,2190,2300,2420: GOTO 1260
  107. 1350  &  POS0,DT,TM:DT$ =  RIGHT$("000000" + STR$(DT),6): &  MID$ DT$,Q$,70,6:Z$ =  RIGHT$("00000" + STR$(CT),5): &  MID$ Z$,Q$,65,5: &  MID$ "00000",Q$,93,5: &  MID$ "000",Q$,76,3: &  MID$  STR$( PEEK(870)),Q$,81,1: &  MID$ "--NNN--",Q$,56,7: &  MID$ "0",Q$,79,1: &  MID$ "000",Q$,87,3: &  MID$  STR$( PEEK(864)),Q$,63,1: &  MID$ "A",Q$,80,1: &  MID$ "CCC",Q$,83,3
  108. 1351  &  MID$  CHR$( PEEK(867)),Q$,1,1: &  MID$  STR$( PEEK(871)),Q$,92,1: &  MID$ "1",Q$,82,1: &  MID$  STR$( PEEK(866)),Q$,86,1: IF  PEEK(772) = 1  THEN  &  MID$ "010",Q$,98,3: GOTO 1520
  109. 1510  &  MID$ "000",Q$,98,3
  110. 1520  &  MID$ "10000000000000000000",Q$,101,20: &  MID$ "0000000",Q$,121,7: &  PRINT ,N$(14): ONERR  GOTO 1620
  111. 1560  &  GOSUB 50:I = 0:J =  -1
  112. 1590  PRINT RD$;F$;",R";I: INPUT Z$: IF  MID$ (Z$,1,1) = "D"  OR  LEN(Z$) <127  THEN J = I:I = I +1: GOTO 1590
  113. 1600  IF  MID$ (Z$,22,20) =  MID$ (Q$,22,20)  THEN  PRINT CL$;F$: &  PRINT N$(15): FOR I = 0 TO 2000: NEXT : GOTO 80
  114. 1610 I = I +1: GOTO 1590
  115. 1620  PRINT CL$;F$: &  ONERR  = ER,LI: IF ER >200  THEN 80
  116. 1630  IF J <0  THEN J = I
  117. 1640  ONERR  GOTO 1120
  118. 1645 X = ( RND(J) +12) + VAL( MID$ (PH$,5,4)):PW$ =  CHR$(( RND(X) *26) +65) + CHR$(( RND(X) *26) +65) + RIGHT$("000" + STR$(J),3) + CHR$(( RND(X) *26) +65) + CHR$(( RND(X) *26) +65): &  MID$ PW$,Q$,56,7: &  STORE Q$: &  PRINT N$(16);: &  STR$3,"090": &  INPUT Z$:Z =  VAL(Z$): IF Z = 0  THEN Z = 40
  119. 1672  IF Z >80  THEN Z = 80
  120. 1675 X =  INT(Z/20): &  MID$  STR$(X),Q$,82,1:Z$ =  RIGHT$("000" + STR$(Z),3): &  MID$ Z$,Q$,83,3: &  PRINT ,N$(17): FOR I = 18 TO 26: &  PRINT N$(I): NEXT : &  PRINT N$(27);: &  STR$1: &  INPUT Z$: IF Z$ = ""  THEN Z$ = "9"
  121. 1740  &  MID$ Z$,Q$,64,1: &  STORE Q$: &  GOSUB 50: PRINT WR$;F$;",R";J: PRINT Q$: PRINT CL$;F$:NM$ = Q$ +"": &  PRINT N$(28): &  PRINT ,N$(29);PW$: &  PRINT N$(30); MID$ (Q$,50,4):ST$ = D$ +"STORE": &  PRINT N$(31);: &  GET Z$: &  PRINT ,,N$(32),,: IF  PEEK(878) < >1  THEN 1840
  122. 1835  &  AT  PEEK(841),A: IF A < >0  THEN 1840
  123. 1837  PRINT BL$;"MSG."; PEEK(879);",A";HM: &  PRINT  = HM: &  PRINT 
  124. 1840  &  STORE Q$: &  RECALL NM$: IF  MID$ (NM$,1,1) = "*"  THEN 80
  125. 1843  ONERR  GOTO 720
  126. 1845 NM$ = Q$: GOTO 765
  127. 1880 W = W +1: IF W = 3  THEN  POP : GOTO 80
  128. 1890  &  PRINT ,N$(10),: &  RETURN 
  129. 1930  POKE 805,255: &  PRINT ,N$(1);: &  USRZ: ON Z GOTO 1940,1950
  130. 1940 Z$ = "0":Z = 255: GOTO 1960
  131. 1950 Z$ = "1":Z = 0
  132. 1960  &  MID$ Z$,Q$,90,1: POKE 805,Z: &  STORE Q$: &  PRINT "............": &  PRINT N$(11);: &  USRZ: ON Z GOTO 1980,1930
  133. 1980  RETURN 
  134. 2020  &  PRINT ,N$(2);: &  USRZ: ON Z GOTO 2030,2040
  135. 2030 Z$ = "0":Z = 0: GOTO 2050
  136. 2040 Z$ = "1":Z = 255
  137. 2050  &  MID$ Z$,Q$,91,1: POKE 807,Z: &  STORE Q$: RETURN 
  138. 2090  &  STR$20,"Az":W =  -1
  139. 2100  &  PRINT N$(3);: &  INPUT FT$: IF  LEN(FT$) = 0  THEN  &  GOSUB 1880: GOTO 2100
  140. 2120  &  PRINT N$(4);: &  INPUT LT$: IF  LEN(LT$) = 0  THEN  &  GOSUB 1880: GOTO 2120
  141. 2140 NA$ = FT$ +" " +LT$: IF  LEN(Z$) >20  THEN  &  PRINT ,N$(5),: GOTO 2090
  142. 2150  &  SGNNA$: &  MID$ NA$,Q$,2,20: &  STORE Q$: RETURN 
  143. 2190  IF AL% = 1  THEN AL$ = "": GOTO 2220
  144. 2195  &  STR$20," ": &  PRINT N$(6);: &  INPUT AL$: &  SGNAL$
  145. 2220  IF AL$ = ""  THEN AL$ = NA$
  146. 2230  IF AL$ = "NONE"  THEN AL$ = NA$
  147. 2240  FOR I = 1 TO  LEN(AL$): IF  MID$ (AL$,I,1) = ","  OR  MID$ (AL$,I,1) = ":"  THEN  &  MID$ " ",AL$,I,1
  148. 2250  NEXT : &  MID$ AL$,Q$,22,20: &  STORE Q$: RETURN 
  149. 2300  &  STR$12,"09-":W = 0
  150. 2310  &  PRINT N$(7);: &  INPUT PH$: IF PH$ = ""  THEN  &  GOSUB 1880: GOTO 2310
  151. 2330  IF  LEN(PH$) < >12  THEN W = W +1: ON W = 3 GOTO 80: &  PRINT ,N$(8),: GOTO 2300
  152. 2340  IF  MID$ (PH$,1,1) = "0"  OR  MID$ (PH$,5,1) = "0"  THEN 80
  153. 2350  IF  MID$ (PH$,1,1) = "1"  OR  MID$ (PH$,5,1) = "1"  THEN 80
  154. 2360  IF  MID$ (PH$,4,1) < >"-"  OR  MID$ (PH$,8,1) < >"-"  THEN  &  GOSUB 1880: GOTO 2300
  155. 2370  FOR I = 0 TO 20: IF P$(I) = PH$  THEN  POKE 793,0:I = 21: GOTO 2385
  156. 2375  NEXT : &  MID$ PH$,Q$,42,12: &  STORE Q$: RETURN 
  157. 2385  NEXT : GOTO 80
  158. 2420  &  STR$2,"Az":W = 0
  159. 2430  &  PRINT N$(9);: &  INPUT ST$: IF  LEN(ST$) < >2  THEN  &  GOSUB 1880: GOTO 2430
  160. 2450  &  SGNST$: &  MID$ ST$,Q$,54,2: &  STORE Q$: RETURN 
  161. 2570  &  RECALL NM$: POKE 794,0: POKE 795,0:Z$ = "LOG OFF USER": &   OR ,Z$: IF  MID$ (NM$,58,1) <"0"  OR  MID$ (NM$,58,1) >"9"  THEN 80
  162. 2580 I =  VAL( MID$ (NM$,76,3)):I = I +1:Z$ =  RIGHT$("000" + STR$(I),3): IF I >999  THEN 2600
  163. 2590  &  MID$ Z$,NM$,76,3: POKE 790,173: &  STORE NM$
  164. 2600  &  PEEK777,R:Z$ =  RIGHT$("00000" + STR$(R),5): &  MID$ Z$,NM$,93,5: &  POS2,DT,TM:Z$ =  RIGHT$("000000" + STR$(DT),6): &  MID$ Z$,NM$,70,6: &  PEEK775,R:Z$ =  RIGHT$("00000" + STR$(R),5): &  MID$ Z$,NM$,65,5: &  STORE NM$:R =  VAL( MID$ (NM$,58,3)): &  GOSUB 50: PRINT WR$;F$;",R";R: PRINT NM$: PRINT CL$;F$: &  POP 4,1,LS$(5):LS$(1) =  MID$ (NM$,58,3) +" " + MID$ (NM$,22,20): &  GOSUB 46
  165. 2601  PRINT ST$;"VAR.LOG": POKE 793,0: GOTO 80
  166. 2690  &  RECALL NM$: POKE 803,0: POKE 813,0:Z$ = "SYSOP USER UTILITIES": &   OR ,Z$
  167. 2700  HOME : &  PRINT ,"          ** User Utilities **",,: &  PRINT "[L]evel (Security)   [C]lass Code": &  PRINT "[W]idth              [M]enu Width": &  PRINT "[R]ead User Record   [V]alidate New Usr": &  PRINT "[I]ndex Bit Codes    [S]ave User Record": &  PRINT "[F]ind Class Codes   [D]aily Call Limit"
  168. 2701  &  PRINT "[T]ime Limit         [1]-Telegram": &  PRINT "[2] Messages Posted  [3] Total Calls": &  PRINT "[B]BS (Rtn to BBS)   [Q]uit": &  PRINT ,"               Command ";: &  GET Z$: &  SGNZ$: &  INT"LCWMRVISBQFDT123",Z$,Z
  169. 2702  ON Z GOTO 2950,2970,2990,3010,3030,3050,3160,3220,3240,3250,3260,3400,2820,2840,2860,2880: GOTO 2700
  170. 2820  HOME : INPUT "TIME LIMIT? (0-9): ";Z$: IF Z$ = ""  THEN 2700
  171. 2830 Z =  VAL(Z$):Z$ =  RIGHT$("0" + STR$(Z),1): &  MID$ Z$,NM$,86,1: &  STORE NM$: GOTO 2700
  172. 2840  HOME : INPUT "TELEGRAM NUMBER? (0-9): ";Z$: IF Z$ = ""  THEN 2700
  173. 2850 Z =  VAL(Z$):Z$ =  RIGHT$("0" + STR$(Z),1): &  MID$ Z$,NM$,92,1: &  STORE NM$: GOTO 2700
  174. 2860  HOME : INPUT "ENTER MESSAGES? (0-999): ";Z$: IF Z$ = ""  THEN 2700
  175. 2870 Z =  VAL(Z$):Z$ =  RIGHT$("000" + STR$(Z),3): &  MID$ Z$,NM$,87,3: &  STORE NM$: GOTO 2700
  176. 2880  HOME : INPUT "TOTAL CALLS (0-999): ";Z$: IF Z$ = ""  THEN 2700
  177. 2890 Z =  VAL(Z$):Z$ =  RIGHT$("000" + STR$(Z),3): &  MID$ Z$,NM$,76,3: &  STORE NM$: GOTO 2700
  178. 2910  IF  LEN(RS$) = 0  THEN  &  GOSUB 46: PRINT  CHR$(4);"RESTORE VAR.LOG"
  179. 2915  &  SCALE= HM
  180. 2920 ST$ =  CHR$(4) +"STORE": &  RETURN 
  181. 2950  HOME : INPUT "ENTER SECURITY LEVEL (0-63): ";Z$:Z =  VAL(Z$): IF Z$ = ""  THEN 2700
  182. 2960 Z = Z +64:Z$ =  CHR$(Z): &  MID$ Z$,NM$,80,1: &  STORE NM$: GOTO 2700
  183. 2970  HOME : INPUT "ENTER CLASS CODE (*?XD): ";Z$: IF Z$ = ""  THEN 2700
  184. 2980  &  MID$ Z$,NM$,1,1: &  STORE NM$: GOTO 2700
  185. 2990  HOME : INPUT "ENTER COLUMN WIDTH (20-80): ";Z$:Z =  VAL(Z$): IF Z$ = ""  THEN 2700
  186. 3000 Z$ =  RIGHT$("000" + STR$(Z),3): &  MID$ Z$,NM$,83,3: &  STORE NM$: GOTO 2700
  187. 3010  HOME : INPUT "ENTER MENU WIDTH: (1-4) ";Z$: &  MID$ Z$,NM$,82,1: &  STORE NM$: GOTO 2700
  188. 3030  HOME : INPUT "ENTER BOX NUMBER: ";Z: &  GOSUB 50: &  GOSUB 60: PRINT CL$;F$: &  STORE NM$: GOTO 2700
  189. 3050  HOME : ONERR  GOTO 3150
  190. 3060  FOR Z = 0 TO 999: &  GOSUB 50
  191. 3080  &  GOSUB 60: IF  MID$ (NM$,1,1) = "*"  THEN 3100
  192. 3091  IF  MID$ (NM$,1,1) = "#"  THEN 3100
  193. 3092 Z = Z +1: GOTO 3080
  194. 3100  PRINT CL$F$: &  STORE NM$: HOME : PRINT "VALIDATE THIS PERSON? (Y/N) ";: GET Z$: &  SGNZ$: IF Z$ =  CHR$(13)  OR Z$ = "Y"  THEN 3130
  195. 3120  PRINT "N": PRINT "DELETE THIS PERSON? (Y/N) ";: GET Z$: &  SGNZ$: IF Z$ =  CHR$(13)  OR Z$ = "Y"  THEN 3122
  196. 3121  GOTO 3140
  197. 3122  PRINT "Y": &  MID$ "D",NM$,1,1: GOTO 3135
  198. 3130  PRINT "Y": &  MID$ "N",NM$,1,1
  199. 3135  &  STORE NM$: &  GOSUB 50: PRINT WR$;F$;",R";Z: PRINT NM$: PRINT CL$;F$
  200. 3140  NEXT 
  201. 3150  &  ONERR : PRINT CL$;F$: PRINT : PRINT "VALIDATIONS ARE ALL DONE": PRINT "PRESS ANY KEY TO CONTINUE...";: GET Z$: GOTO 2700
  202. 3160  HOME : PRINT "CHANGE WHICH BIT CODE? ";: INPUT "(0-19) ";Z$: IF Z$ = ""  THEN 2700
  203. 3180 Z =  VAL(Z$): IF Z <0  OR Z >19  THEN 2700
  204. 3190 Z = Z +101: PRINT "CURRENT BIT CODE = "; MID$ (NM$,Z,1): PRINT "CHANGE TO? (0-9) ";: GET Z$: IF Z$ <"0"  OR Z$ >"9"  THEN 3160
  205. 3210  &  MID$ Z$,NM$,Z,1: &  STORE NM$: GOTO 3160
  206. 3220  HOME : PRINT "SAVING RECORD":Z =  VAL( MID$ (NM$,58,3)): IF  MID$ (NM$,58,1) >"9"  OR  MID$ (NM$,58,1) <"0"  THEN 2700
  207. 3230  &  GOSUB 50: PRINT WR$;F$;",R";Z: PRINT NM$: PRINT CL$;F$: GOTO 2700
  208. 3240  POKE 803,255: &  GOSUB 40: PRINT RN$;"BBS.1"
  209. 3250  POKE 793,0: GOTO 210
  210. 3260  HOME : ONERR  GOTO 3390
  211. 3270  PRINT "ENTER FIND KEY ";: GET Z$: FOR Z = 0 TO 999: &  GOSUB 50
  212. 3300  &  GOSUB 60: IF  MID$ (NM$,1,1) < >Z$  THEN Z = Z +1: GOTO 3300
  213. 3320  PRINT CL$F$: &  STORE NM$: PRINT "CHANGE THIS CLASS CODE ";: GET X$: &  SGNX$: IF X$ =  CHR$(13)  THEN 3360
  214. 3340  IF X$ = "Y"  THEN 3360
  215. 3350  PRINT "N": GOTO 3380
  216. 3360  PRINT "Y": PRINT "ENTER NEW CLASS! ";: GET X$: IF X$ <" "  THEN 3360
  217. 3370  &  MID$ X$,NM$,1,1: &  STORE NM$: &  GOSUB 50: PRINT WR$;F$;",R";Z: PRINT NM$: PRINT CL$;F$
  218. 3380  NEXT 
  219. 3390  &  ONERR : PRINT CL$;F$: PRINT : PRINT "NO MORE MATCHES...": PRINT "PRESS ANY KEY TO CONTINUE...";: GET Z$: GOTO 2700
  220. 3400  HOME : INPUT "INPUT NEW DAILY CALL LIMIT ";Z$: IF Z$ = ""  THEN 2700
  221. 3410  IF Z$ <"0"  OR Z$ >"9"  THEN 3400
  222. 3420  &  MID$ Z$,NM$,63,1: &  STORE NM$: GOTO 2700
  223. 3430  &  PRINT : &  PRINT  SPC( 9);"** Edit Program Text **": &  PRINT ,:X = 7: &  PRINT , SPC( X);"[L]og-On Text": &  PRINT , SPC( X);"[N]ew User Text": &  PRINT , SPC( X);"[P]hone Numbers": &  PRINT , SPC( X);"[S]ave changes": &  PRINT , SPC( X);"[Q]uit/return to Options": &  PRINT , SPC( X);"Command? ";
  224. 3510  GET Z$: &  SGNZ$: &  INT"LNSQP",Z$;Z: IF Z = 0  THEN  PRINT  CHR$(7);: GOTO 3510
  225. 3520  ON Z GOTO 3600,3780,3960,210,3970
  226. 3530  VTAB 7: &  PRINT :X = 13: &  PRINT  SPC( X);"[L]ist text": &  PRINT , SPC( X);"[E]dit text": &  PRINT , SPC( X);"[Q]uit": &  PRINT , SPC( X);"Command? ";
  227. 3580  GET Z$: &  SGNZ$: &  INT"LEQ",Z$,Z: IF Z = 0  THEN  PRINT  CHR$(7);: GOTO 3580
  228. 3590  RETURN 
  229. 3600  HOME : &  PRINT  SPC( 9);"** Edit Log on Text **": GOSUB 3530: ON Z GOTO 3620,3680,3430
  230. 3620  HOME : &  PRINT "-- Log On Text --",,:I = 0
  231. 3640  IF I >50  THEN 3670
  232. 3650  IF A$(I) < >""  THEN  &  PRINT !;I;">";A$(I): &  END Z: ON Z GOTO 3670,3670
  233. 3660 I = I +1: GOTO 3640
  234. 3670  &  PRINT ,,"Press any key to continue...";: GET Z$: GOTO 3600
  235. 3680  VTAB 7: &  PRINT : CALL  -958: VTAB 12: &  PRINT  SPC( 7);"Edit which line? ";: &  STR$2,"090": &  INPUT Z$:Z =  VAL(Z$): IF Z$ = ""  THEN 3600
  236. 3690 I =  LEN(A$(Z)): IF I = 0  THEN 3720
  237. 3700  FOR X = 1 TO I: IF  MID$ (A$(Z),X,1) =  CHR$(13)  THEN  &  MID$ "@",A$(Z),X,1
  238. 3710  NEXT 
  239. 3720  VTAB 7: &  PRINT : CALL  -958: &  STR$250," ": &  PRINT ,,,A$(Z);"#end": POKE 835,255: &   STEP A$(Z): POKE 835,0:I =  LEN(A$(Z)): IF I = 0  THEN 3760
  240. 3740  FOR X = 1 TO I: IF  MID$ (A$(Z),X,1) = "@"  THEN  &  MID$  CHR$(13),A$(Z),X,1
  241. 3750  NEXT 
  242. 3760  VTAB 7: PRINT : CALL  -958: &  PRINT ,,,A$(Z);"#end": &  PRINT ,,"Correct? (Y/N) ";: &  USRI: ON I GOTO 3770,3690
  243. 3770  GOTO 3600
  244. 3780  HOME : &  PRINT  SPC( 9);"** Edit New User Text **": GOSUB 3530: ON Z GOTO 3800,3860,3430
  245. 3800  HOME : &  PRINT "-- New User Text --",,:I = 0
  246. 3820  IF I >50  THEN 3850
  247. 3830  IF N$(I) < >""  THEN  &  PRINT !;I;">";N$(I): &  END Z: ON Z GOTO 3850,3850
  248. 3840 I = I +1: GOTO 3820
  249. 3850  &  PRINT ,,"Press any key to continue...";: GET Z$: GOTO 3780
  250. 3860  VTAB 7: &  PRINT : CALL  -958: VTAB 12: &  PRINT  SPC( 7);"Edit which line? ";: &  STR$2,"090": &  INPUT Z$:Z =  VAL(Z$): IF Z$ = ""  THEN 3780
  251. 3870 I =  LEN(N$(Z)): IF I = 0  THEN 3900
  252. 3880  FOR X = 1 TO I: IF  MID$ (N$(Z),X,1) =  CHR$(13)  THEN  &  MID$ "@",N$(Z),X,1
  253. 3890  NEXT 
  254. 3900  VTAB 7: PRINT : CALL  -958: &  STR$250," ": &  PRINT ,,,N$(Z);"#end": POKE 835,255: &   STEP N$(Z): POKE 835,0:I =  LEN(N$(Z)): IF I = 0  THEN 3940
  255. 3920  FOR X = 1 TO I: IF  MID$ (N$(Z),X,1) = "@"  THEN  &  MID$  CHR$(13),N$(Z),X,1
  256. 3930  NEXT 
  257. 3940  VTAB 7: PRINT : CALL  -958: &  PRINT ,,,N$(Z);"#end": &  PRINT ,,"Correct? (Y/N) ";: &  USRI: ON I GOTO 3950,3870
  258. 3950  GOTO 3780
  259. 3960  &  GOSUB 46: PRINT  CHR$(4);"STORE VAR.LOG": GOTO 3430
  260. 3970  HOME : &  PRINT  SPC( 9);"** Edit Phone Numbers **": GOSUB 3530: ON Z GOTO 3990,4050,3430
  261. 3990  HOME : &  PRINT "-- Phone Numbers --",:I = 0
  262. 4010  IF I >20  THEN 4040
  263. 4020  IF P$(I) < >""  THEN  &  PRINT !;I;">";P$(I): &  END Z: ON Z GOTO 4040,4040
  264. 4030 I = I +1: GOTO 4010
  265. 4040  &  PRINT ,,"Press any key to continue...";: GET Z$: GOTO 3970
  266. 4050  VTAB 7: &  PRINT : CALL  -958: VTAB 12: &  PRINT  SPC( 7);"Edit which number? ";: &  STR$2,"090": &  INPUT Z$:Z =  VAL(Z$): IF Z$ = ""  THEN 3970
  267. 4060  VTAB 7: PRINT : CALL  -958: &  STR$12,"09-": &  PRINT ,,,P$(Z): &   STEP P$(Z): VTAB 7: PRINT : CALL  -958: &  PRINT ,,,P$(Z),,"Correct? (Y/N) ";: &  USRI: ON I GOTO 4090,4060
  268. 4090  GOTO 3970
  269. 60000  PRINT  CHR$(4);"SAVE LOG": END